惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
V
V2EX
量子位
Last Week in AI
Last Week in AI
Jina AI
Jina AI
博客园 - 【当耐特】
爱范儿
爱范儿
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
小众软件
小众软件
IT之家
IT之家
博客园_首页
博客园 - 聂微东
S
SegmentFault 最新的问题
阮一峰的网络日志
阮一峰的网络日志
博客园 - 叶小钗

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies Capacity Is the Roadmap The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Airport Security Feels Random Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens
Factory
Yusuf Aytas · 2010-01-10 · via Yusuf Aytas

Published · 1 min read

Bu yazımda size Factory adındaki nesneye dayalı yazılım şablonunu (Object-Oriented Design Pattern) anlatacağım. Factory şablonunu şöyle anlatayım. Painte benzer bir program yazmanız gerekiyor ve bu programda  kullanıcının birden bir çok şekile ihtiyacı var. Kullanıcı şekil seçeneklerinden birine basar ve onunla boyama işlemini yapar. Tıpkı kullanıcı gibi bizde yazılımsal olarak bir şekli seçip, o şekli yaratıyoruz. Daha programlamacı gözüyle bakarsak, Shape adında genel bir interface yazıyoruz. Bu interfacesi kullanan Rectangular, Circle vb sınıflar var. Biz her sınıfların sadece Shape sınıfından haberdar olmalısını istiyoruz çünkü çocuk sınıfların(child classes) detaylarının bilinmesini istemiyoruz. Dolayısıyla, yeni bir obje yaratılması için Factory adlı sınıfa bir parametreyle (bunun ne olacağını ve türünü siz seçebilirsiniz) emir veriyoruz. Factory de bu parametreye göre bize istediğimiz sınıfın bir nesnesinden dönüyor. Böylece çocuk sınıfların detaylarını diğer nesnelerden saklamış oluyoruz.

Factory tasarım deseni şemasıFactory tasarım deseni şeması

public interface Shape{}
public class Circle implements Shape{}
public class Rectangular implements Shape{}
public class Factory{
	public Shape getShape(String shapeName){
		if(shapeName.equals("circle"))
			return new Circle();
		else if(shapeName.equals("rectangular"))
			return new Rectangular();
		else
			return null;
	}
}