【讨论】开始有点烦面向对象了,不知道你们如何看
【讨论】开始有点烦面向对象了,不知道你们怎么看?
记得最早接触面向对象是java
后来做php了,面向对象的特性 继承 封装 多态。
1.继承,继承多了 你都不知道哪里来的对象(当然这是设计者的问题,可是貌似大多数程序员的代码写的都不是很好,特别是业务复杂过后)。
网站数据源很多,有的是cache(这里特指内存的) 有的是文件 有的是数据库,出错了,都不知道哪里来的数据。一个个去排除。封装直接挡道了。
2.封装,本来是为了保证上层不用管下层,同时数据被封起来对外只提供方法,不会被外部修改。可是一般公司分工不是有人专门写 数据源层 逻辑层 这么分工的吧。而是基本按照业务分工。谁也不敢说我的数据访问层就没问题,谁也不敢说 我的某个类不出问题。至于数据的封装在web方面真的意义不大。
3.多态。php不支持,只有方法重写。
另外php对象的调用要多次查hash表,性能不高。其实php的类使用hash表来实现的,说白了和array比他反而是在array上面的hash表上封装。不如用array。
对于面向对象的应用在php,只觉得用在例如生成缩略图 数据库的操作封装 图片的操作封装 这些地方用我觉得倒是十分合适。
欢迎讨论。
------解决方案--------------------
面向对象,是一种思维方式
面向对象编程,是一种方法
软件工程中有:自顶向下分析,自底向上编程。描述的是面向过程的编程方法,他需要对所涉及的每个细节都深入了解。
面向对象的编程方法是 自顶向下分析,自顶向下编程。他不需要一开始就了解细节,而是在过程中逐渐展开。暂时不了解的环节放个空对象就可以了
面向对象给编程带来很多方便,也必然带来更多的系统开销
这就是为什么 windows 操作系统从开始的 10M 变成现在的300、400M,功能增加了不少,而速度却越来越蜗牛
------解决方案--------------------
楼上说的在点。
传统编程是数据结构+函数,有了面向对象思想以后,它就变成了数据结构和操作该数据结构的方法, 也就是更明确了功能的划分。
C语言有指针甚至是函数指针,可以直接操作指定地址的内存,用C实现面向对象中的派生,多态之类的非常简单,但对于绝大多数语言来说,它们并没有那么灵活的特性,所以都提供了类这些语言特性专门支持面向对象,不要怪它们。
另外,面向对象注重内聚,所以也意味着不同对象间的通信非常依赖于明确的消息,所以开发时接口的设计变得更加需要思考设计。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

CでのハイDPIディスプレイの取り扱いは、次の手順で達成できます。1)DPIを理解してスケーリングし、オペレーティングシステムAPIを使用してDPI情報を取得し、グラフィックスの出力を調整します。 2)クロスプラットフォームの互換性を処理し、SDLやQTなどのクロスプラットフォームグラフィックライブラリを使用します。 3)パフォーマンスの最適化を実行し、キャッシュ、ハードウェアアクセラレーション、および詳細レベルの動的調整によりパフォーマンスを改善します。 4)ぼやけたテキストやインターフェイス要素などの一般的な問題を解決し、DPIスケーリングを正しく適用することで解決します。

AIは、作曲家の使用を最適化するのに役立ちます。特定の方法には次のものが含まれます。1。依存関係管理の最適化:AIは依存関係を分析し、最適なバージョンの組み合わせを推奨し、競合を減らします。 2。自動コード生成:AIは、ベストプラクティスに準拠したComposer.jsonファイルを生成します。 3.コードの品質を改善する:AIは潜在的な問題を検出し、最適化の提案を提供し、コードの品質を向上させます。これらの方法は、開発者が効率とコードの品質を向上させるのに役立つ機械学習および自然言語処理技術を通じて実装されています。

session_start()iscrucialinphpformangingusersions.1)itInitiateSanewsessionifnoneExists、2)resumesanexistingsession、および3)SetSessionCookieforcontinuityAcrossRequests、ApplicationslicationSliviseSlikeUserauthicationAnticatent。

HTML5は5つの重要な改善をもたらします。1。セマンティックタグにより、コードの明確性とSEO効果が向上します。 2.マルチメディアサポートは、ビデオとオーディオの埋め込みを簡素化します。 3。フォームエンハンスメントは、検証を簡素化します。 4.オフラインおよびローカルストレージにより、ユーザーエクスペリエンスが向上します。 5。キャンバスとグラフィック機能は、Webページの視覚化を強化します。

安全かつ徹底的にMySQLをアンインストールし、すべての残留ファイルをクリーンにするには、次の手順に従ってください。1。MySQLサービスを停止します。 2。MySQLパッケージをアンインストールします。 3.構成ファイルとデータディレクトリのクリーン。 4.アンインストールが徹底していることを確認します。

MySQL関数は、データ処理と計算に使用できます。 1.基本的な使用には、文字列処理、日付計算、数学操作が含まれます。 2。高度な使用法には、複数の関数を組み合わせて複雑な操作を実装することが含まれます。 3.パフォーマンスの最適化では、Where句での機能の使用を回避し、GroupByおよび一時テーブルを使用する必要があります。
